package com.weiiew.itemservice.service;

import com.weiiew.common.entity.cal.calItem;
import com.weiiew.common.entity.simple.SimpleItem;
import com.weiiew.common.entity.dto.Item;
import com.weiiew.common.entity.qo.ItemQo;
import com.weiiew.common.entity.vo.ItemVO;
import com.weiiew.common.utils.ApiResponse;

import java.util.List;
import java.util.Map;

/**
 * @author 魏锴
 * @description 针对表【item】的数据库操作Service
 * @createDate 2024-02-05 00:34:27
 */
public interface ItemService {


    /**
     * 获取物品堆叠数量列表
     *
     * @param version 版本号
     * @return 已有物品堆叠数量列表
     */
    List<Integer> getItemStackSizes(Integer version);

    /**
     * 查询物品列表
     *
     * @param qo  查询条件
     * @return 满足条件的物品列表
     */
    List<ItemVO> getItemList(ItemQo qo);
    /**
     * 查询物品列表长度
     *
     * @param qo  查询条件
     * @return 满足条件的物品列表
     */
    Integer getItemLength(ItemQo qo);

    ItemVO getItemVOById(Integer id);

    boolean insertItem(Item item, int id, int version);

    boolean updateItem(Item item, int id, int version);

    boolean removeItem(int id, int version);

    Item getItemById(Integer id);

    Integer getItemByName(String name, Integer version);


    /**
     * 根据qo查询简单物品列表
     * @param qo 查询条件
     * @return 物品列表
     */
    List<SimpleItem> getSimpleItemList(ItemQo qo);

    /**
     * 根据版本号获取物品图标
     * @param version 版本号
     * @return 图标列表
     */
    List<String> getItemIconList(Integer version);
    List<SimpleItem> getItemListOrderByUse(Integer version);

    List<calItem> getCalRecipeItemList(Integer version, String name);

    Map<Integer, Integer> getItemRecipeMap(int version);

    void clearCache(int i);
}
